package com.stellar.circle.domain.sPost;

import com.stellar.circle.controller.admin.sPost.vo.*;
import com.stellar.circle.controller.miniApp.sPost.vo.PostPinRequestVO;
import com.stellar.circle.controller.miniApp.sPost.vo.TimeSlotPriceVO;
import com.stellar.web.core.bean.PageResult;

import java.util.List;

/**
 * 校园墙帖子表领域服务接口
 *
 * @author Jqchan
 * @version 1.0
 * @date 2025-05-17 19:23:37
 */
public interface SPostDomainService {

    /**
     * 分页查询
     *
     * @param requestPageVO 分页查询参数
     * @return 分页结果
     */
    PageResult<SPostResponseVO> page(SPostRequestPageVO requestPageVO);

    /**
     * 更新数据
     *
     * @param requestVO 更新参数
     * @return 是否成功
     */
    Boolean update(SPostRequestVO requestVO);

    /**
     * 删除数据
     *
     * @param id 主键ID
     * @return 是否成功
     */
    Boolean delete(Long id);

    /**
     * 新增数据
     *
     * @param requestVO 新增参数
     * @return 是否成功
     */
    Boolean insert(SPostRequestVO requestVO);

    /**
     * 根据主键获取详情
     *
     * @param id 主键ID
     * @return 详情数据
     */
    SPostResponseVO get(Long id);

    /**
     * 帖子浏览量加1
     *
     * @param postId
     * @return
     */
    Boolean view(Long postId);

    /**
     * 获取置顶时间段和价格
     *
     * @return
     */
    List<TimeSlotPriceVO> getPinPricing();

    /**
     * 置顶帖子
     *
     * @param postPinRequestVO
     * @return
     */
    Boolean createPostPin(PostPinRequestVO postPinRequestVO);

    /**
     * 获取置顶订单号
     *
     * @return
     */
    String getPinOrderNo();
}
